import 'package:intl/intl.dart';

/// 日期格式化辅助函数类
class DateFormatter {
  /// 格式化日期为 yyyy-MM-dd 格式
  static String dateFormat(DateTime date) {
    return DateFormat('yyyy-MM-dd').format(date);
  }
  
  /// 格式化日期为 yyyy-MM-dd HH:mm:ss 格式
  static String dateTimeFormat(DateTime date) {
    return DateFormat('yyyy-MM-dd HH:mm:ss').format(date);
  }
  
  /// 格式化日期为自定义格式
  static String customFormat(DateTime date, String pattern) {
    return DateFormat(pattern).format(date);
  }
  
  /// 将字符串转换为DateTime对象
  static DateTime? parseDateTime(String dateStr) {
    try {
      return DateFormat('yyyy-MM-dd').parse(dateStr);
    } catch (e) {
      return null;
    }
  }
  
  /// 获取相对时间描述（如"3分钟前"，"2小时前"等）
  static String relativeTimeFormat(DateTime dateTime) {
    final now = DateTime.now();
    final difference = now.difference(dateTime);
    
    if (difference.inDays > 365) {
      return '${(difference.inDays / 365).floor()}年前';
    } else if (difference.inDays > 30) {
      return '${(difference.inDays / 30).floor()}个月前';
    } else if (difference.inDays > 0) {
      return '${difference.inDays}天前';
    } else if (difference.inHours > 0) {
      return '${difference.inHours}小时前';
    } else if (difference.inMinutes > 0) {
      return '${difference.inMinutes}分钟前';
    } else {
      return '刚刚';
    }
  }
} 